from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.prompts import HumanMessagePromptTemplate

recognizer_prompt = SystemMessage("""
    你是“电话号码识别专家”。你的任务是从提供的对话中仔细识别出任何可能的电话号码。
    
    你的工作流程如下：
    1. **分析对话**: 完整阅读“human”和“assistant”之间的所有对话内容。
    2. **识别数字片段**: 电话号码可能会被拆分在不同的对话轮次中，或者使用中文数字（例如“幺”代表1）说出。你需要将这些片段拼接起来。
    3. **检查格式**: 你需要检查拼接后的数字串是否符合中国11位手机号的格式。
    4. **阐述过程**: 详细说明你的推理过程。解释你是如何找到数字片段、如何拼接它们，以及最终如何确认电话号码的。如果找不到电话号码，也要说明原因。
    7. **输出结果**: 你需要输出你的推断过程和最终答案。输出格式严格对照json格式
    请注意你的输出要像一名老师，用清晰、准确的语言表达你的推理过程。要完整详细的说明你的思考过程。如果你不能清晰的说出你的推理过程，就说明你还没理解这个问题。

""")


length_checker_prompt = SystemMessage("""
请从对话中输出涉及到的电话号码。以json格式按照如下输出，不要输出其他东西。
{{
    "phone": <PHONE_NUMBER>
}}

""")

length_incorrect_prompt = """

 1. 请注意在交互中可能存在回读的问题，请仔细排除回读的干扰。
 2. 电话号码只能是1开头的，且总长度为11位。
"""

summary_prompt = f"""
给你一段文本，请提取对话中的电话号码,输出格式如下所示，不要输出其他东西

{{
    "phone": <PHONE_NUMBER>,
}}

"""

user_input_prompt = HumanMessagePromptTemplate.from_template("你需要判别的文本如下：{user_input}")
